package com.snow.service.content;

import com.github.pagehelper.PageInfo;
import com.snow.pojo.dto.cond.ContentCond;
import com.snow.pojo.model.ContentDomain;

import java.util.List;

/**
 * @Description:
 * @author: snow
 * @Date: 2020-01-22
 **/
public interface ContentService {
    /**
     * 跟新文章分类
     * @param oldName
     * @param newName
     * @return
     */
    void updateCategory(String oldName,String newName);

    /**
     * 根据文章主键获取文章
     * @param cid
     * @return
     */
    ContentDomain getArticleById(Integer cid);

    /**
     * 根据文章主键更新文章
     * @param contentDomain
     * @return
     */
    int updateContentById(ContentDomain contentDomain);

    /**
     * 添加文章
     * @param contentDomain
     */
    void addArticle(ContentDomain contentDomain);

    /**
     * 删除文章
     * @param cid
     */
    void deleteArticleById(Integer cid);

    /**
     * 更新文章点击量
     * @param contentDomain
     */
    void updateArticleHits(ContentDomain contentDomain);

    /**
     * 根据条件获取文章
     * @param cond
     * @return
     */
    PageInfo<ContentDomain> getArticlesByCond(ContentCond cond,Integer pageNum,Integer size);

    /**
     * 获取最近文章，只包含title 和 id
     * @param pageNum
     * @param size
     * @return
     */
    PageInfo<ContentDomain> getRecentlyArticle(Integer pageNum,Integer size);

    /**
     * 搜索文章
     * @param param
     * @param pageNum
     * @param size
     * @return
     */
    PageInfo<ContentDomain> searchArticle(String param,Integer pageNum,Integer size);

    /**
     * 更新文章的评论数
     * @param cid
     * @param num
     */
    void updateArticleCommentCount(Integer cid,Integer num);

    /**
     * 更新文章
     * @param contentDomain
     */
    void updateArticleById(ContentDomain contentDomain);

    /**
     * 获得刚插入文章的cid
     * @return
     */
    Integer getNewArticleId();


}
